The following description is provided to assist the understanding of the reader. None of the information provided or references cited is admitted to be prior art.
Semiconductor memory has become more popular for use in various electronic devices. Semiconductor memory may be implemented in cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices and other devices. Operating a memory device includes applying different voltages to program memory cells. In one approach, a flash memory device is operated by applying different programming pulses to memory cells during different programming loops to program different memory cells to corresponding target states. For example, a first memory cell of the memory cells is programmed to a first state (e.g., “A” state) by applying a first programming pulse having a first programming voltage to the memory cells during a first programming loop, and a second memory cell of the memory cells is programmed to a second state (e.g., “B” state) by applying a second programming pulse having a second programming voltage higher than the first programming voltage to the memory cells during a second programming loop.
In one approach, a voltage is iteratively incremented from a starting programming voltage by a voltage step to obtain different programming voltages during different programming loops. A larger voltage step allows a programming voltage different from the starting programming voltage to be obtained in fewer programming loops. However, a larger voltage step may render a programming voltage that is excessive for programming a memory cell to its target state. Such an excessive programming voltage may alter programmed states of other memory cells. A smaller voltage step reduces the likelihood of an excessive programming voltage. However, the smaller voltage step generally requires a larger number of programming loops to obtain the programming voltage for programming the memory cell to its target state. Assuming as an example that a starting programming voltage is 12V and a sufficient programming voltage for programming a memory cell with a target state is 20.5V, if a voltage step is 1.2V, a programming voltage of 21.6V will be obtained after 9 programming loops, and that programming voltage will have an excessive voltage of 1.1V. However, if the voltage step is 0.4V instead of 1.2V, a programming voltage of 20.8V will be obtained after 23 programming loops and will result in a 0.3V of excessive voltage. Thus, iteratively incrementing a voltage by a fixed voltage step to obtain a programming voltage is subject to a tradeoff between accuracy and speed.